/// File:		MessageSystemComponent.h
/// Author:		Dennis Norton
/// Date:		07/23/12
/// Purpose:	This component processes messages by system objects that tell the
///				application what to do.

#ifndef MESSGAESYSTEMCOMPONENT_H_
#define MESSGAESYSTEMCOMPONENT_H_

#include "SystemMessageTypes.h" // For the different kind of messages
#include "../Data Structures/SinglyLinkedList.h"


class EngineInstance;
class MessageSystemComponent
{
	SinglyLinkedList<int> _Messages;
	EngineInstance* _Engine;
public:
	MessageSystemComponent(EngineInstance* engine);
	~MessageSystemComponent();

	/// Purpose:	Processes all the messages in the queue and clears the list.
	void ProcessMessages();

	/// Purpose:	Adds a message to the queue for processing.
	void AddMessage(int Message);
};

#endif